package com.briup.corejava.day19;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.RandomAccessFile;

/**
 * RandomAccessFile ： 随机访问文件中的任何位置
 * 主要方法：seek()
 */
public class Test5 {
    public static void main(String[] args) {
        File file = new File("src/com/briup/corejava/day19/file/c.txt");
        // 创建随机文件流的对象
        RandomAccessFile raf = null;
        try {
            raf = new RandomAccessFile(file, "rw");
            // 先写，后读
            long pos = 11; // 写入的位置
            StringBuilder s = new StringBuilder("briup");
            byte[] b = new byte[1024];
            int len = -1;
            // 游标从指定位置开始读
            raf.seek(pos);
            while((len=raf.read(b))!=-1){
                s.append(new String(b, 0, len));
            }
            // 游标拨回去开始写
            raf.seek(pos);
            raf.write(s.toString().getBytes());
            // 游标拨到开头读取输出
            raf.seek(0);
            while((len=raf.read(b))!=-1){
                System.out.println(new String(b, 0, len));
            }

        } catch (FileNotFoundException e) {
            throw new RuntimeException(e);
        } catch (IOException e) {
            throw new RuntimeException(e);
        } finally {
            if(raf!=null) {
                try {
                    raf.close();
                } catch (IOException e) {
                    throw new RuntimeException(e);
                }
            }
        }
    }
}
